package test04.method.demo01;

/**
 * @author ZQX
 * @date 2025-04-02
 */
public class MainTest {
    public static void main(String[] args) {
        User user = new User();

        // 1)传统方式实现（略）

        // 2）匿名内部类实现
        user.wenHao("张三", new IWenHou() {
            @Override
            public void sayHello(String name) {
                System.out.println("你好，" + name);
            }
        });

        // 3）Lambda 表达式
        // void sayHello(String name);
        user.wenHao("李四", (name) -> {
            System.out.println("Hello," + name);
        });

        // 4）方法引用 - 与 Lambda 表达式一样，
        // 实现函数式接口中的抽象方法
        user.wenHao("王五",user::goodMorning);
        user.wenHao("赵六",User::goodAfternoon);

        // 错误：参数不匹配
        // user.wenHao("田七",User::goodNight);

        user.wenHao("王八",User::goodNight01);
    }
}
